// onjava/ArrayShow.java
// (c)2021 MindView LLC: see Copyright.txt
// We make no guarantees that this code is fit for any purpose.
// Visit http://OnJava8.com for more book information.
package onjava;

import java.util.*;

/**
 * 
 * 一个用于显示数组的常用工具程序
 *
 * @see Arrays#toString()
 * @author Lucky Yang
 */
public interface ArrayShow {
  /**
   * 输出对象数组
   * 
   * @param a
   */
  static void show(Object[] a) {
    System.out.println(Arrays.toString(a));
  }

  /**
   * 输出布尔数组
   * 
   * @param a
   */
  static void show(boolean[] a) {
    System.out.println(Arrays.toString(a));
  }

  /**
   * 输出字节数组
   * @param a
   */
  static void show(byte[] a) {
    System.out.println(Arrays.toString(a));
  }

  /**
   * 输出字符数组
   * @param a
   */
  static void show(char[] a) {
    System.out.println(Arrays.toString(a));
  }

  /**
   * 输出数值数组
   * @param a
   */
  static void show(short[] a) {
    System.out.println(Arrays.toString(a));
  }

  /**
   * 输出整数数组
   * 
   * @param a
   */
  static void show(int[] a) {
    System.out.println(Arrays.toString(a));
  }

  /**
   * 输出长整型数组
   * @param a
   */
  static void show(long[] a) {
    System.out.println(Arrays.toString(a));
  }

  /**
   * 输出浮点数数组
   * @param a
   */
  static void show(float[] a) {
    System.out.println(Arrays.toString(a));
  }

  /**
   * 输出数组
   * @param a
   */
  static void show(double[] a) {
    System.out.println(Arrays.toString(a));
  }

  /**
   * Start with a description:
   * <br>
   * 首先输出主题，然后输出对象数组
   * 
   * @param info
   * @param a
   */
  static void show(String info, Object[] a) {
    System.out.print(info + ": ");
    show(a);
  }

  /**
   * 首先输出主题，然后输出布尔数组
   * 
   * @param info
   * @param a
   */
  static void show(String info, boolean[] a) {
    System.out.print(info + ": ");
    show(a);
  }

  /**
   * 首先输出主题，然后输出字节数组
   * 
   * @param info
   * @param a
   */
  static void show(String info, byte[] a) {
    System.out.print(info + ": ");
    show(a);
  }

  /**
   * 首先输出主题，然后输出字符数组
   * 
   * @param info
   * @param a
   */
  static void show(String info, char[] a) {
    System.out.print(info + ": ");
    show(a);
  }

  /**
   * 首先输出主题，然后输出数值数组
   * 
   * @param info
   * @param a
   */
  static void show(String info, short[] a) {
    System.out.print(info + ": ");
    show(a);
  }

  /**
   * 首先输出主题，然后输出整型数组
   * 
   * @param info
   * @param a
   */
  static void show(String info, int[] a) {
    System.out.print(info + ": ");
    show(a);
  }

  /**
   * 首先输出主题，然后输出长整型数组
   * 
   * @param info
   * @param a
   */
  static void show(String info, long[] a) {
    System.out.print(info + ": ");
    show(a);
  }

  /**
   * 首先输出主题，然后输出浮点数据数组
   * 
   * @param info
   * @param a
   */
  static void show(String info, float[] a) {
    System.out.print(info + ": ");
    show(a);
  }

  /**
   * 首先输出主题，然后输出数值数组
   * 
   * @param info
   * @param a
   */
  static void show(String info, double[] a) {
    System.out.print(info + ": ");
    show(a);
  }
}
